package hotel;

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.ComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class ModificaCamera extends JFrame implements ActionListener{
	ImageIcon iconav=new ImageIcon("Risorse/iconav.png");
	private GraficaHotel g;
	private JPanel pannello;
	private JLabel nome;
	private JTextField nomeStanza;
	private JLabel posti;
	private JComboBox numeroPersone;
	private JTextField prezzo;
	private JLabel prezzoL;
	private JLabel mat;
	private String[] clienti={"1","2","3","4"};
	private String[] sino={"NO","SI"};
	private JComboBox matrimoniale;
	private JButton aggiungi;
	private ResultSet rs=null;
	
	public ModificaCamera(String chiave,GraficaHotel g){
		this.g=g;
		Image immagineIc = Toolkit.getDefaultToolkit().getImage(
				"Risorse/setRImg1.png");
		setIconImage(immagineIc);
		this.setTitle("Modifica Camera");
		this.setLocation(350, 250);
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		this.setResizable(false);
		pannello=new JPanel();
		nome=new JLabel("Numero Stanza:");
		pannello.add(nome);
		nomeStanza=new JTextField(5);
		nomeStanza.setEditable(false);
		pannello.add(nomeStanza);
		posti=new JLabel("Posti:");
		pannello.add(posti);
		numeroPersone=new JComboBox(clienti);
		pannello.add(numeroPersone);
		numeroPersone.addActionListener(this);
		prezzo=new JTextField(6);
		prezzoL=new JLabel("Prezzo:");
		pannello.add(prezzoL);
		pannello.add(prezzo);
		mat=new JLabel("Matrimoniale:");
		mat.setVisible(false);
		pannello.add(mat);
		matrimoniale=new JComboBox(sino);
		matrimoniale.setVisible(false);
		pannello.add(matrimoniale);
		aggiungi=new JButton("Aggiorna");
		aggiungi.addActionListener(this);
		pannello.add(aggiungi);
		add(pannello);
		riempi(chiave);
		this.setVisible(true);
		this.pack();
	}

	private void riempi(String chiave) {
		try {
			rs=g.database.stat.executeQuery("SELECT * FROM CAMERE WHERE numero='"+chiave+"'");
			rs.next();
			int i=2;
			nomeStanza.setText(rs.getString(i++));
			numeroPersone.setSelectedItem(rs.getString(i++));
			if(Integer.valueOf((String) numeroPersone.getSelectedItem())>1){
				mat.setVisible(true);
				matrimoniale.setVisible(true);
				this.pack();
			}
			i++;
			String m=rs.getString(i++);
			if(m.equals("0"))
				m="NO";
			else
				m="SI";
			matrimoniale.setSelectedItem(m);
			i++;
			prezzo.setText(rs.getString(i++));
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==numeroPersone){
			if(Integer.valueOf((String) numeroPersone.getSelectedItem())>1){
				mat.setVisible(true);
				matrimoniale.setVisible(true);
				this.pack();
			}else{
				mat.setVisible(false);
				matrimoniale.setVisible(false);
				this.pack();
			}
		}else if(e.getSource()==aggiungi){
				if(!nomeStanza.getText().equals("") || !prezzo.getText().equals("")){
					boolean flag=false;
					if(matrimoniale.getSelectedItem().equals("SI") && !numeroPersone.getSelectedItem().equals("1"))
						flag=true;
					String query ="UPDATE CAMERE SET "+
							"numeroposti="+numeroPersone.getSelectedItem()+
							",matrimoniale="+flag+
							",prezzo='"+prezzo.getText()+
							"' WHERE numero='"+nomeStanza.getText()+"'";
					try {
						g.database.stat.executeUpdate(query);
						JOptionPane.showMessageDialog(null, "Modifica effettuata con successo.","Ottimo",JOptionPane.INFORMATION_MESSAGE,iconav);
						this.dispose();
						g.onTop();
					} catch (SQLException e1) {
						e1.printStackTrace();
					}
				}
		}
	}
}
